/**
 * 场景管理器
 * 单场景设计，用于对多场景状态的模拟
 * 
 * 场景的定义为，销毁当前界面所有资源，切换显示全新的资源
 * @author 
 *
 */
class SceneManager 
{
    private _nextScene: BaseScene;
    private _currentScene: BaseScene;
    
	public constructor() 
    {
	}
	
	// 跳转到指定场景
	private gotoNextScene():void 
    {
        this.clearScene();
        this._currentScene = null;
        this._currentScene = this._nextScene;
        this._nextScene = null;
      
        // 调用 指定场景构建  
        if(this._currentScene)
        {
            Game.View.addChild(this._currentScene);
        }
	}
	
    //清除上一个场景
    public clearScene():void
    {
        if(!Game.View)
        {
            return console.error("未正确指定当前主舞台对象=======================");
        }
    	
        // 销毁 当前场景资源
        if(this._currentScene)
        {
            Game.View.removeChild(this._currentScene);
        }
    }
	
	public get currentScene():BaseScene
    {
        if(!this._currentScene)
        {
            console.error("当前场景不存在!======= ");
        }
        return this._currentScene;
	}

    //跳转到 login场景
    public gotoLoginScene(): void 
    {
        this._nextScene = new LoginScene();
        this.gotoNextScene();
    }
	
	// 跳转到 main场景
    public gotoHomeScene():void
    {
        this._nextScene = new HomeScene();
        this.gotoNextScene();
    }

	// 跳转到 战斗场景
	public gotoBattlefieldScene():void 
    {
      
	}
   
}
